home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-04-01 | 25.8 KB | 833 lines | [TEXT/R*ch] |
-
- DISTRIBUTION INFORMATION
- ON GENOMIC MAP DESIGN
- (GMD)
-
- Programs are now available to assist in the design of genome
- mapping experiments ("contig mapping"). The theory behind the GMD
- programs for designing "contig mapping" experiments can be found in
-
- Fu, Y.-X., W.E. Timberlake, and J. Arnold (1992). "On the design
- of genome mapping experiments using short synthetic
- oligonucleotides", Biometrics, in press.
-
- Any published use of these programs should cite this reference.
- This journal has a one year backlog, and it may be as late as 1993
- before the article appears.
-
- OBTAINING THE SOFTWARE: The software is only distributed via
- Internet using EMAIL. Please send an EMAIL request to:
-
- ARNOLD%GANDAL.DNET@SERVER.UGA.EDU
-
- if you wish copies of the programs. I will EMAIL you three FORTRAN
- programs written to generate the tables in Fu et al. (1992). Each program
- is accompanied by a documentation file explaining the program's
- use.
-
- USING THE SOFTWARE WITHOUT THE PROGRAMS: The programs also have been
- incorporated into a DNA sequence analysis package (Arnold et al., 1986),
- and can be accessed directly on the Biological Sequence/Structure
- Computational Facility (BS/SCF). Contact Dr. Weise for a guest account
- at:
- WEISE%GANDAL.DNET@SERVER.UGA.EDU
-
- OBTAINING FURTHER DOCUMENTATION: The best source of documentation
- is the paper by Fu et al. (1992). A reprint can be obtained by
- writing:
- Dr. Jonathan Arnold
- Genetics Department
- University of Georgia
- Athens, GA 30602
- or by emailing:
- ARNOLD%GANDAL.DNET@SERVER.UGA.EDU
-
- SOFTWARE SUPPORT IN THE USE OF THE PROGRAMS: If you have questions about
- the programs, please contact Dr. Yun-xin Fu, who wrote the programs:
-
- FU@GSBS18.GS.UTH.TMC.EDU
-
- --------------------------------------------------------------------------------
-
-
- DOCUMENTATION FOR TABLE1.EXE in DNASEQ
-
-
- This program provides information for designing genome mapping
- experiments. The map to be generated can be a RFLP map or
- physical map. The program generates Table 1 or variations
- on it in the reference:
-
- Fu, Y.X., W.E. Timberlake, and J. Arnold (1992). On the
- design of genome mapping experiments using short synthetic
- oligonucleotides, Biometrics, in press
-
- This program is used to select library size or the number of
- RFLPs to map a chromosome. The program provides coverage statistics associated
- with each choice of library size (or number of RFLPs). The example
- is in terms of a physical mapping experiment.
-
- To convert the example below into terms for an RFLP mapping experiment,
- make a proportional correspondence between the size of chromosome
- in map units and the target density of RFLPs (i.e. one per centimorgan)
- on the one hand with the size of the chromosome in kilobases and
- the insert size of a cloning vector. A probe is some short sequence
- motif that can be found at substantial frequency among clones in
- the library or associated with the collection of clones used to
- screen for the RFLPs. This short sequence motif may be detected
- by synthetic oligonucleotides or restriction enzymes, for example.
- For RFLP mapping take the chromosome size in map units
- and convert into kilobases (i.e. 2000 kb) and the insert
- size as (target density of RFLPs/chromosome size in map units)X2000.
-
-
- PROGRAM INPUT:
-
- The program first asks you for the chromosome
- size and clone length (i.e. insert size or target density
- on RFLP map). The answer should be in kilobases, but if
- you are creating an RFLP map, please rescale proportionally
- the target density and length in map units so that the
- length in map units corresponds to kilobases.
-
- Example: 400 40
-
- The program then asks you for the clone range. That is, it is
- requesting the smallest library size, the largest library
- size, and increment in library size you would find
- acceptable. This question allows
- you to consider a range of values for the library size
- (number of clones) and to step through this range in
- steps of specified size.
-
- Example: 40 50 5
-
- PROGRAM OUTPUT:
-
- The program then displays the predictions about the
- library on the terminal screen and also writes the results to a
- file with a name like FOR010.dat. The output from the
- example above is shown below and annotated:
-
- Example:
-
- The program repeats the input values for each library
- imagined. In the example, there were three libraries considered during
- input. The notation (cir) refers to a circular (bacterial)
- chromosome. The notation (Lin) refers to a linear
- chromosome. The notation (3a) refers to a circular
- chromosome; The notation (3b) refers to a linear
- chromosome. The notation (3c) refers to the interior
- of a linear chromosome. The notation (n.c) also
- refers to a circular chromosome, and the notation
- (c.l), to a linear chromosome.
-
- Genome size and clone length= 400 40
- number of clones = 40
- A: (cir) and (Lin)= 0.77858 0.77858 <----(expected
- proportion of clones overlapping the 3' end of a random clone)
- B: (3a), (3b),(3c)= 0.985 0.988 0.944 <----(expected
- proportion of coverage)
- C: (n.c) and (n.l)= 3.9 4.1 <----(expected
- number of clones downstream of a random clone)
- D: (c.c) and (c.l)= 1.0 1.5 <----(expected
- number of contigs)
-
- Genome size and clone length= 400 40
- number of clones = 45
- A: (cir) and (Lin)= 0.79962 0.79962
- B: (3a), (3b),(3c)= 0.991 0.993 0.952
- C: (n.c) and (n.l)= 4.4 4.6
- D: (c.c) and (c.l)= 1.0 1.3
-
- Genome size and clone length= 400 40
- number of clones = 50
- A: (cir) and (Lin)= 0.81789 0.81789
- B: (3a), (3b),(3c)= 0.995 0.996 0.958
- C: (n.c) and (n.l)= 4.9 5.1
- D: (c.c) and (c.l)= 1.0 1.2
-
-
-
- EXITING PROGRAM:
-
- Enter a string of zeros:
-
- 0 0 0
-
- Enter a second string of zeros:
-
- 0 0 0
-
- You should exit the program and return to the menu.
-
- Jonathan Arnold
-
- --------------------------------------------------------------------------------
-
- c Program used to generate Table 1
- c Adapted from Nclone.for
- c
- c Calculate the prob. of overlapping, En,
- c E( Cn ) etc.
- c
- program clone
- implicit real*8 (a-h,o-z)
- real*8 lark(-1:2000),fac(0:30000),lark2(-1:2000)
- Real*8 g0,g1
-
- fac(0) = 0.0d0
- Do k=1,30000,1
- fac(k) = fac(k-1) + dlog( dble(k))
- End Do
- Write(5,'(/A62/)') 'The results shown on screen are also
- & in the file :for010.dat'
-
- 10 print*,' Input genome size and clone length (in kb)'
- read(5,*) n,m
- if( n .eq. 0 ) stop
-
- 20 print*,'Input clone range: start(say 10), end(say 50)
- & and step (say 5)'
- read(5,*) mk1,mk2,mk3
- if( mk1 .eq. 0) go to 10
-
- do mkk = mk1,mk2,mk3
-
- mk = mkk-1
- Ec0 = 1.0d0 - g0(N,M,mkk,2.0d0)
- x1 = g1(N,M,mkk+1,1.0d0)
- x2 = g1(N,M,mkk+1,2.0d0)
- Ec1 = 1.0d0 - 2.0d0*(x1-x2)/(mkk+1)-x2
- Ec2 = 1.0d0 - 2.0d0*(1.0d0-x2)/(mkk+1)-x2
-
- x0 = g0(N,M,1,2.0d0)
-
- xx0 = g1(N,M,2,2.0d0)
- xx0 = (1.0d0-xx0)/2 + xx0
-
- xp = dlog(x0)
- xq = dlog(1.0d0 - x0)
-
- xxp = dlog(xx0)
- xxq = dlog(1.0d0 - xx0)
-
- en = 0.0d0
- en1 = 0.0d0
- Do k=0,mk,1
- x = fac(mk)-fac(k)-fac(mk-k)
- en = en + k*dexp( x + (mk-k)*xp + k*xq )
- en1 = en1 + k*dexp( x + (mk-k)*xxp + k*xxq )
- end Do
- Econtig0 = mkk*dexp( mk*xp )
- Econtig1 = (mkk-1)*dexp( mk*xxp )+1
-
- lark(0) = g0(N,M,mkk-1,0.0d0)
- lark2(0) = g1(N,M,mkk,0.0d0)
- Do k=1,M,1
- x1 = 2.0d0*k/M
- xx = g0(N,M,mkk-1,x1)
- lark(k) = xx
-
- xx = g1(N,M,mkk,x1)
- lark2(k) = (1.0d0 -xx)/mkk + xx
- end do
-
- yy =0.0d0
- yy2=0.0d0
-
- ww =0.0d0
- ww2=0.0d0
- Do k=0,M-1,1
- ab = lark(k)-lark(k+1)
- ac = lark2(k)-lark2(k+1)
- ab2 = ab/(1.0d0-lark(M))
- ac2 = ab/(1.0d0-lark(M))
-
- yy = yy + ab*k
- yy2 = yy2 + ab2*k
- ww = ww + ac*k
- ww2 = ww2 + ac2*k
-
- c write(1,'(i6,4f10.5,i8)') k,ab,ab2,ac,ac2,mkk
- c write(5,'(i6,4f10.5,i8)') k,ab,ab2,ac,ac2,mkk
-
- end do
-
- v1= dmax1(Econtig0,1.0d0)
- v2= dmax1(Econtig1,1.0d0)
- Do lk=5,10,5
- write(lk,'(/A30,2i10)') 'Genome size and clone length=',n,m
- write(lk,'(A30,2i10)') 'number of clones =', mkk
- write(lk,'(A30,2f10.5)') ' A: (cir) and (Lin)=',
- + 1.0d0-yy2/M,1-ww2/M
- write(lk,'(a30,3f8.3)') ' B: (3a), (3b),(3c)=',Ec0,Ec1,Ec2
- write(lk,'(a30,2f8.1)') ' C: (n.c) and (n.l)=',en,en1
- write(lk,'(a30,2f8.1)') ' D: (c.c) and (c.l)=',v1,v2
- end do
-
- end do
-
- go to 20
- end
- c-------------------------------------------------------
- c function
- c------------------------------------------------------
- Real*8 function g0(N,M,nn,x)
- real*8 x,xx
- integer nn,N,M
-
- xx = 1.0d0 - x*M/(2*N)
- g0 = dexp( nn*dlog(xx) )
-
- end
- c------------------------------------------------------
- Real*8 function g1(N,M,nn,x)
- real*8 x,xx
- integer nn,N,M
-
- xx = 1.0d0 - x*M/(2*(N-M))
- g1 = dexp( nn*dlog(xx) )
-
- end
-
- --------------------------------------------------------------------------------
-
-
- DOCUMENTATION FOR TABLE2.EXE in DNASEQ
-
-
- This program provides information for designing genome mapping
- experiments. The map to be generated can be a RFLP map or
- physical map. The program generates Table 2 or variations
- on it in the reference:
-
- Fu, Y.X., W.E. Timberlake, and J. Arnold (1992). On the
- design of genome mapping experiments using short synthetic
- oligonucleotides, Biometrics, in press
-
- This program is used to select the number of probes to
- be used to detect overlaps between clones. The program provides
- the power to detect overlap as a function of the number
- of probes, the probability of clone/probe hybridization,
- the significance level (frequency of false positives tolerable).
-
- To convert the example below into terms for an RFLP experiment,
- make a proportional correspondence between chromosome size in
- map units and the target density of RFLPs (i.e. one per centimorgan)
- on the one hand with chromosome size in kilobases and the insert
- size of a cloning vector on the other hand. A probe is some short sequence
- motif that can be found at substantial frequency among clones in
- the library or associated with clones used to screen for the RFLPs.
- This short sequence motif may be detected by synthetic oligonucleotides
- or restriction enzymes, for example. For RFLP mapping, take the
- chromosome size in map units and convert into kilobases
- (.i.e. 2000 kb) and the insert size, as
- (target density of RFLPs in map units/chromosome size in map units)X2000.
-
- PROGRAM INPUT:
-
- The program first asks you for the insert size of your
- cloning vector (or target spacing on your RFLP map) and
- the probability of hybridization between clone and probe.
-
- Example: 40 .40
-
- The program then asks you for a range of probe numbers. That is, it is
- requesting the smallest number of probes to be used, the largest number
- of probes possible, and an increment in the number of probes. This question
- allows you to consider a range of values for the number of probes used
- and to step through this range in steps of specified size.
-
- Example: 30 40 5
-
- PROGRAM OUTPUT:
-
- The program then writes the predictions about the
- experiment to a file with a name like FOR010.dat. The output from the
- example above is shown below and annotated:
-
- Example:
- Table 2, Powers of detecting two overlapping clones
- Overlapping (%)>= 0 20 50
- Probe length (bp)= 9
-
- significance levels
-
- 1.0d-7 1.0d-6 1.0d-5 1.0d-4 1.0d-3 0.0100 0.0250 0.0500
-
- Clone length (kb)= 40
- prob. of hybrid. = 0.4000
- 30 0.1096 0.1096 0.1668 0.2865 0.3491 0.4803 0.5487 0.6181
- 0.1371 0.1371 0.2085 0.3580 0.4359 0.5960 0.6753 0.7506
- 0.2192 0.2192 0.3330 0.5626 0.6710 0.8476 0.9079 0.9490
- 35 0.1425 0.1924 0.2436 0.2962 0.4057 0.5213 0.5811 0.6416
- 0.1782 0.2405 0.3045 0.3702 0.5063 0.6459 0.7141 0.7784
- 0.2849 0.3841 0.4842 0.5834 0.7642 0.8955 0.9376 0.9656
- 40 0.1677 0.2120 0.2572 0.3510 0.4495 0.5527 0.6059 0.6596
- 0.2096 0.2649 0.3215 0.4387 0.5606 0.6841 0.7437 0.7997
- 0.3352 0.4230 0.5116 0.6835 0.8290 0.9269 0.9568 0.9762
-
- There are a triple of numbers associated with each combination. Consider
- the last column, where the significance level (the acceptable level
- to you of false positives). The number .6181 is the power (chance) of detecting
- any overlap when the number of probes used is 30. The number
- .7506 is the power (chance) of detecting an overlap of at
- least 20%. The last number .9490 is the power (chance) of detecting
- an overlap of at least 50%. These three detection probabilities, power,
- are for an experiment with a probability of clone/probe hybridization
- of .4 and insert size of 40kb.
-
- EXITING PROGRAM:
-
- Enter a string of zeros:
-
- 0 0 0
-
- Enter a second string of zeros:
-
- 0 0 0
-
- You should exit the program and return to the menu.
-
- Jonathan Arnold
-
- --------------------------------------------------------------------------------
-
- c adapted from semi.for to compute table 2.
- c difference is that here three overlapping 0,20,50 are
- c combined to give one table.
- c march 27,90
- c
- program semi
- implicit real*8 (a-h),(o-z)
- integer crit(0:8),crit2(0:8)
- real*8 fac(0:5000),qq(0:3000),siglevel(0:8),power(0:8),
- & power2(0:8)
-
- write(5,'(/a55/)') 'Output is stored in the file :For011.dat'
-
- fac(0) = 0.0d0
- do k=1,5000,1
- fac(k) = dlog( dble(k)) + fac(k-1)
- end do
- lpr = 9
-
- do k=11,11,4
- write(k,'(/a60)') 'Table 2, Powers of detecting two overlapping
- & clones '
- write(k,'(a42,3i8)') ' Overlapping (%)>=', 0,20,50
- write(k,'(a42,i8)') ' Probe length (bp)=', lpr
- write(k,'(/a45/)') ' significance levels'
- write(k,'(5x,8a9/)') '1.0d-7','1.0d-6','1.0d-5','1.0d-4' ,
- &'1.0d-3',
- + '0.0100','0.0250','0.0500'
- end do
-
- 10 Print*,' Input clone length(in kb) and hybri prob.'
- Read(*,*) lcl,ph
- if( lcl .eq. 0) stop
- Print*,' Input the range of probe numbers: start, end and step'
- read(*,*) mk1,mk2,mk3
-
- c do lll = 30,40,5
- lll=lcl
- lcl=lll*1000
- w = lcl- lpr+1
- write(11,'(a42,i8)') ' Clone length (kb)=', lcl/1000
- c do ph=0.30d0,0.51d0,0.05d0
- write(11,'(a42,f9.4)') ' prob. of hybrid. =', ph
-
- pq = 2.0d0*ph*(1.0d0-ph)
- pp = 1.0d0 -pq
- a = dlog( 1.0d0-ph )/w
-
- Do nprobe = mk1,mk2,mk3
- do lmn = 1,3,1
-
- if(lmn .eq.1 ) mper = 0
- if(lmn .eq.2 ) mper = 20*(lcl/100)
- if(lmn .eq.3 ) mper = 50*(lcl/100)
-
- kp = lcl-125
- num = 0
- d2 = dlog(2.0d0)
- Do k=0,nprobe,1
- qq(k)=0.0d0
- end do
-
- Do loc = 1,500,1
- if( kp .lt. mper ) go to 100
- k = kp-lpr+1
- q = d2+ a*w + dlog( 1.0d0 - dexp(a*(w-k)) )
- p = dlog(1.0d0 - dexp(q) )
- Do i=0,nprobe,1
- qq(i) = qq(i)+
- + dexp( dble(i)*q + dble(nprobe-i)*p )
- end do
- kp = kp-250
- end do
-
- 100 num = loc-1
-
- c print*,' the number of location considered =',num
- siglevel(0) = 0.050d0
- siglevel(1) = 0.025d0
- siglevel(2) = 0.010d0
- Do k=0,7,1
- power2(k) = 0.0d0
- power(k) = 0.0d0
- crit(k) = 0
- crit2(k) = 0
- if( k.gt.2) siglevel(k)=siglevel(k-1)*0.1d0
- end do
- cy = 0.0d0
- cx = 0.0d0
- p = dlog(pp)
- q = dlog(pq)
-
- Do k=0,nprobe,1
- ww = fac(nprobe)-fac(k)-fac(nprobe-k)
- qq(k) = qq(k)/num
- xx = dexp(ww)*qq(k)
- yy = dexp( ww + k*q + (nprobe-k)*p )
- cx = cx + xx
- cy = cy + yy
-
- Do i=0,7,1
- if( cy .lt. siglevel(i) ) then
- power(i) = cx
- crit(i) = k
- end if
- if((1.0d0-cx .lt. siglevel(i)).and.(crit2(i).eq.0))then
- power2(i) = 1.0d0-cy
- crit2(i) = k
- end if
- end do
-
- c Do i=10,10,5
- c write(unit=i,fmt='(i4,2f10.6,i5,f8.4,2i9)') k,
- c + xx,yy,nprobe,ph,lcl,lpr
- c end do
- end do
- c write(5,'(i5,8f9.4)') nprobe,(power(k),k=7,0,-1)
- c write(5,'(5x,8f9.4)') (power2(k),k=7,0,-1)
- if( lmn .eq.1) then
- write(11,'(i5,8f9.4)') nprobe,(power(k),k=7,0,-1)
- else
- write(11,'(5x,8f9.4)') (power(k),k=7,0,-1)
- end if
- c write(2,'(i5,8i9)') nprobe, (crit(k),k=7,0,-1)
-
- end do
- end do
-
- c end do
- c end do
- go to 10
-
- end
-
- --------------------------------------------------------------------------------
-
-
- DOCUMENTATION FOR TABLE3.EXE in DNASEQ
-
-
- This program provides information for designing genome mapping
- experiments. The map to be generated can be a RFLP map or
- physical map. The program generates Table 3 or variations
- on it in the reference:
-
- Fu, Y.X., W.E. Timberlake, and J. Arnold (1992). On the
- design of genome mapping experiments using short synthetic
- oligonucleotides, Biometrics, in press
-
- This program is used to select the number of probes and clones to
- be used to detect overlaps between clones in order to
- enlarge a contig. The program provides
- the power to detect overlap between a given contig
- and an overlapping clone downstream for varying
- significance levels, the number
- of probes, number of clones, and chromosome size.
-
- To convert the example below into terms for an RFLP experiment
- make a proportional correspondence between chromosome size
- in map units and the target desnity of RFLPs (i.e. one per
- centimorgan). on the one hand with chromosome size in kilobases
- and the insert size of a cloning vector on the other hand.
- A probe is some short sequence motif that can be found at
- substantial frequency among clones in the library or associated
- with the collection of clones used to screen for the RFLPs.
- This short sequence motif may be detected by restriction enzymes
- or synthetic oligonucleotides, for example. For RFLP mapping,
- take the chromosome size in map units and convert
- into kilobases (i.e 2000 kb) and the insert size as
- (target density of RFLPs in map units/chromosome size in map units)X2000.
-
- PROGRAM INPUT:
-
- The program first asks you for the chromosome size, clone length (insert
- size of cloning vector), and number of clones in the library.
-
- Example: 400 40 50
-
- The next question is a request for the probability of
- clone/probe hybridization:
-
- Example: .40
-
- The final question is for a range of probe numbers. That is, it is
- requesting the smallest number of probes to be used, the largest number
- of probes possible, and an increment in the number of probes. This question
- allows you to consider a range of values for the number of probes used
- and to step through this range in steps of specified size.
-
- Example: 30 40 5
-
- PROGRAM OUTPUT:
-
- The program then writes the predictions about the
- experiment to a file with a name like FOR012.dat. The output from the
- example above is shown below and annotated:
-
- Example:
-
- Table 3. powers of detecting the nearest right-hand side overlapping clone
- With Probe length = 9 bp
-
- significance levels
-
- 1.0d-7 1.0d-6 1.0d-5 1.0d-4 1.0d-3 0.0100 0.0250 0.0500
-
- prob.of hybri. = 0.400
- Genome size = 400 kb
- Clone length = 40 kb
- Clone number = 50
- 30 0.3830 0.3830 0.5212 0.7195 0.7887 0.8846 0.9167 0.9410
- 35 0.4718 0.5784 0.6659 0.7373 0.8417 0.9087 0.9320 0.9503
- 40 0.5328 0.6186 0.6905 0.8000 0.8746 0.9243 0.9423 0.9566
-
- There is now a single number associated with each combination. Consider
- the last row. The number .9410 is the power (chance) of detecting
- any overlap downstream of a contig when the number of probes used is 30
- and the significance level (frequency of false positives) is .05.
- The rest of the characteristics of the experiment are listed
- in the Table legend, i.e. the probability of hybridization,
- chromosome size, clone length, and clone number (library size).
-
- EXITING PROGRAM:
-
- Enter a string of zeros:
-
- 0 0 0
-
- Enter a second string of zeros:
-
- 0 0 0
-
- You should exit the program and return to the menu.
-
- Jonathan Arnold
-
- --------------------------------------------------------------------------------
-
- C***************************************************************************
- c adapted from npower.for to produce table3 in the genome
- c mapping paper.
- C March 27,1990.
- C Changed for Janothan on June 20.
- c***************************************************************************
- program power
- implicit real*8 (a-h),(o-z)
- integer crit(0:8),crit2(0:8)
- real*8 fac(0:1000),qq(0:300),siglevel(0:8),pow(0:8),
- & pow2(0:8)
- real*8 lark(-1:2000),lark2(-1:2000),density(0:1000)
- real*8 g0,g1
-
- write(*,'(/a30/)') 'The output is in for012.dat'
-
- kcode = 0
- c kcode = 1 will be linear genome
-
- fac(0) = 0.0d0
- do k=1,1000,1
- fac(k) = dlog( dble(k)) + fac(k-1)
- end do
- lpr = 9
- c ph = 0.40d0
-
- write(12,'(/a79)') 'Table 3. powers of detecting the nearest
- & right-hand side overlapping clone'
- write(12,'(a42,i8,a4)') ' With Probe length =', lpr,' bp'
- write(12,'(/a45/)') ' significance levels'
- write(12,'(5x,8a9/)') '1.0d-7','1.0d-6','1.0d-5','1.0d-4' ,
- &'1.0d-3',
- + '0.0100','0.0250','0.0500'
- c-------------------------------------------------------------------------
- 10 Print*,' Input genome size (kb),clone length(kb) and
- & clone number'
- read(*,*) n,m,mm
-
- if( n .eq. 0 ) stop
- print*,' input prob.of hybri.'
- read(*,*) ph
-
- print*,' input probe number range: start, end and step'
- read(*,*) mk1,mk2,mk3
-
- c Do nleng = 1,3,1
- c if(nleng .eq. 1) n = 300
- c if(nleng .eq. 2) n = 2000
- c if(nleng .eq. 3) n = 10000
- write(12,'(a42,f8.3)') ' prob.of hybri. =', ph
- write(12,'(a42,i8,a4)') ' Genome size =', n,' kb'
- n = n*2
- c
- c do mleng=1,3,1
- c if( mleng.eq.1) m = 30
- c if( mleng.eq.2) m = 35
- c if( mleng.eq.3) m = 40
-
- write(12,'(a42,i8,a4)') ' Clone length =', m,' kb'
- lcl= m*1000
- m = m*2
-
- c do mmleng=1,4,1
- c if( mmleng .eq.1) mm = 50
- c if( mmleng .eq.2) mm = 100
- c if( mmleng .eq.3) mm = 200
- c if( mmleng .eq.4) mm = 400
- write(12,'(a42,i8)') ' Clone number =', mm
-
- c
- c to obtain the distance distribution
- c
- w = lcl- lpr+1
- pq = 2.0d0*ph*(1.0d0-ph)
- pp = 1.0d0 -pq
- a = dlog( 1.0d0-ph )/w
-
-
- if( kcode .eq. 0) then
- lark(0) = g0(N,M,mm-1,0.0d0)
- yy = g0(N,M,mm-1,2.0d0)
- else
- lark(0) = g1(N,M,mm,0.0d0)
- yy = g1(N,M,mm,2.0d0)
- yy = (1.0d0-yy)/(mm+1.0d0)+ yy
- end if
- Do k=1,M,1
- x1 = 2.0d0*k/M
- if( kcode .eq.0) then
- xx = g0(N,M,mm-1,x1)
- lark(k) = xx
- else
- xx = g1(N,M,mm,x1)
- lark(k) = (1.0d0 -xx)/mm + xx
- end if
- density(k-1) = (lark(k-1)-lark(k))/(1.0d0-yy)
- end do
- c
- c computing powers
- c
-
- Do nprobe = mk1,mk2,mk3
- kp = lcl-250
- num = 0
- d2 = dlog(2.0d0)
- Do k=0,nprobe,1
- qq(k)=0.0d0
- end do
-
- x00 = 0.0d0
- Do loc = 1,500,1
- if( kp .lt. 0 ) go to 100
- x00 = x00 + density(loc-1)
- c print*, loc,kp,density(loc-1),x00
-
- k = kp-lpr+1
- q = d2+ a*w + dlog( 1.0d0 - dexp(a*(w-k)) )
- p = dlog(1.0d0 - dexp(q) )
- Do i=0,nprobe,1
- qq(i) = qq(i)+ density(loc-1)*
- + dexp( dble(i)*q + dble(nprobe-i)*p )
- end do
- kp = kp-500
- end do
-
- 100 num = loc-1
-
- c print*,' the number of location considered =',num
- siglevel(0) = 0.050d0
- siglevel(1) = 0.025d0
- siglevel(2) = 0.010d0
- Do k=0,7,1
- pow2(k) = 0.0d0
- pow(k) = 0.0d0
- crit(k) = 0
- crit2(k) = 0
- if( k.gt.2) siglevel(k)=siglevel(k-1)*0.1d0
- end do
- cy = 0.0d0
- cx = 0.0d0
- p = dlog(pp)
- q = dlog(pq)
-
- Do k=0,nprobe,1
- ww = fac(nprobe)-fac(k)-fac(nprobe-k)
- xx = dexp(ww)*qq(k)
- yy = dexp( ww + k*q + (nprobe-k)*p )
- cx = cx + xx
- cy = cy + yy
-
- Do i=0,7,1
- if( cy .lt. siglevel(i) ) then
- pow(i) = cx
- crit(i) = k
- end if
- if((1.0d0-cx .lt. siglevel(i)).and.(crit2(i).eq.0))then
- pow2(i) = 1.0d0-cy
- crit2(i) = k
- end if
- end do
-
- c Do i=10,10,5
- c write(unit=i,fmt='(i4,2f10.6,i5,f8.4,4i9)') k,
- c + xx,yy,nprobe,ph,n,m,mm,lpr
- c end do
- end do
- c write(5,'(i5,8f9.4)') nprobe,(pow(k),k=7,0,-1)
- c write(5,'(5x,8f9.4)') (pow2(k),k=7,0,-1)
- write(12,'(i5,8f9.4)') nprobe,(pow(k),k=7,0,-1)
- c write(12,'(5x,8f9.4)') (pow2(k),k=7,0,-1)
- c write(2,'(i5,8i9)') nprobe,(crit(k),k=7,0,-1)
- end do
-
- c end do
- c end do
- c end do
- go to 10
- end
- c-------------------------------------------------------
- c function
- c------------------------------------------------------
- Real*8 function g0(N,M,nn,x)
- real*8 x,xx
- integer nn,N,M
-
- xx = 1.0d0 - x*M/(2*N)
- g0 = dexp( nn*dlog(xx) )
-
- end
- c------------------------------------------------------
- Real*8 function g1(N,M,nn,x)
- real*8 x,xx
- integer nn,N,M
-
- xx = 1.0d0 - x*M/(2*(N-M))
- g1 = dexp( nn*dlog(xx) )
-
- end
-